#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//比较字符
int cmp_char(const void*a,const void *b)
{
    char arg=*(const char*)a;//这里是两个强制类型转换
    char brg=*(const char*)b;//
    return (arg-brg);
}
// 比较一维整形数组
int cmp_int(const void* a,const void* b)
{
    return(*(int*)a)- (*(int*)b);
}
//比较字符串
int cmp_str(const void* a,const void* b)
{
    return strcmp((char*)a,(char*)b);
}
//比较结构体stu age
int cmp_struct_age(const void* a,const void* b)
{
    return ((struct stu *)a)->age - ((struct stu*)b)->age;
}
//比较结构体stu name
int cmp_struct_name(const void* a,const void* b)
{
    return strcmp(((struct stu *)a)->name , ((struct stu*)b)->name);
}
//结构体定义
struct stu
{
    char name[20];
    int age;
};

int main()
{
    char arr[10]="cdefabkh";
    int sz=strlen(arr);
    qsort(arr,sz,sizeof(arr[0]),&cmp_char);
    //结构体初始化
struct stu s[3]={{"zhangsan",20},{"lisi",22},{"wangwu",18}};
    for(int i=sz-1;i>=0;i--)
    {
        printf("%c ",arr[i]);
    }
    printf("\n");
    return 0;
}
